package com.synergy.stockflow.warehouse.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Schema
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "inventory_count_detail")
public class InventoryCountDetail {
    /**
     * 明细ID
     */
    @TableId(value = "detail_id", type = IdType.ASSIGN_ID)
    @Schema(description="明细ID")
    private String detailId;

    /**
     * 盘点ID
     */
    @TableField(value = "count_id")
    @Schema(description="盘点ID")
    private String countId;

    /**
     * 物料ID
     */
    @TableField(value = "material_id")
    @Schema(description="物料ID")
    private String materialId;

    /**
     * 批次号
     */
    @TableField(value = "batch_no")
    @Schema(description="批次号")
    private String batchNo;

    /**
     * 系统账面数量
     */
    @TableField(value = "system_quantity")
    @Schema(description="系统账面数量")
    private BigDecimal systemQuantity;

    /**
     * 盘点实际数量
     */
    @TableField(value = "counted_quantity")
    @Schema(description="盘点实际数量")
    private BigDecimal countedQuantity;

    /**
     * 差异数量(实际-账面)
     */
    @TableField(value = "variance_quantity")
    @Schema(description="差异数量(实际-账面)")
    private BigDecimal varianceQuantity;

    /**
     * 差异原因
     */
    @TableField(value = "variance_reason")
    @Schema(description="差异原因")
    private String varianceReason;

    /**
     * 盘点人
     */
    @TableField(value = "counted_by")
    @Schema(description="盘点人")
    private String countedBy;

    /**
     * 盘点时间
     */
    @TableField(value = "count_time")
    @Schema(description="盘点时间")
    private Date countTime;

    /**
     * 状态(0=待确认,1=已确认)
     */
    @TableField(value = "`status`")
    @Schema(description="状态(0=待确认,1=已确认)")
    private Integer status;
}